"""

??▓███████▓????▓███████▓??       ??▓█▓????▓█▓????▓█▓???▓█▓????▓█▓????▓██████▓??
??▓█▓????▓█▓???▓█▓????▓█▓??      ??▓█▓????▓█▓????▓█▓???▓█▓????▓█▓???▓█▓????▓█▓??
??▓█▓????▓█▓???▓█▓????▓█▓??      ??▓█▓????▓█▓????▓█▓???▓█▓????▓█▓???▓█▓????▓█▓??
??▓█▓????▓█▓???▓███████▓??       ??▓█▓????▓█▓????▓█▓???▓████████▓???▓█▓????▓█▓??
??▓█▓????▓█▓???▓█▓????▓█▓??      ??▓█▓????▓█▓????▓█▓???▓█▓????▓█▓???▓█▓????▓█▓??
??▓█▓????▓█▓???▓█▓????▓█▓???▓██▓???▓█▓????▓█▓????▓█▓???▓█▓????▓█▓???▓█▓????▓█▓??
??▓███████▓????▓█▓????▓█▓???▓██▓????▓█████████████▓????▓█▓????▓█▓????▓██████▓??

************************************???************************************
作者：Shawn Holmes Hu（胡歌）.
QQ个人：791169230
QQ交流群：723478400（后期技术交流）
QQ腾讯频道：pd71901880（编程技术交流）
欢迎各位小伙伴一起交流学习，共同进步！加油！！！
************************************???************************************
程序类型：嵌入式脚本
程序版权：原创
原程序作者：胡歌
程序首次创建时间：2024/12/31
************************************???************************************
程序名称：dr_SelectedItems_MoveToRight_WithInput.py
程序版本：V1.0.0
程序介绍：选中的所有音频对象右移N分钟（弹窗输入具体时间）
************************************???************************************
"""
from reaper_python import *


RPR_Undo_BeginBlock()  # 撤销设置开始
RPR_PreventUIRefresh(1)  # 防止UI刷新


def moveToRight(dr_seconds):
    items_number = RPR_CountSelectedMediaItems(0) # 获取选中的音频对象数量
    if items_number > 0: # 如果选中了音频对象
        for i in range(items_number): # 循环遍历所有选中的音频对象
            media_item = RPR_GetSelectedMediaItem(0, i)  # 获取第一个选中的音频对象
            start_point = RPR_GetMediaItemInfo_Value(media_item, "D_POSITION")  # 获取选中的音频对象的起始位置
            final_point = start_point + dr_seconds # 计算选中的音频对象的结束位置
            success = RPR_SetMediaItemInfo_Value(media_item, "D_POSITION", final_point) # 设置选中的音频对象的起始位置
            # if success == 1: # 如果设置成功
            #     RPR_ShowConsoleMsg("对象右移五分钟，成功！") # 在控制台输出成功信息
            # else: # 如果设置失败
            #     RPR_ShowConsoleMsg("对象右移五分钟，失败！") # 在控制台输出失败信息
    else:
        RPR_ShowConsoleMsg("没有选中音频对象，请先选中需要操作的部分，然后再运行。") # 在控制台输出提示信息


title = "请输入右移的时间..."
num_inputs = 1
captions_csv = "右移时间（单位/分）："
retvals_csv = "30"
retvals_csv_sz = 512


Boolean_retval, String_title, Int_num_inputs, String_captions_csv, String_retvals_csv, Int_retvals_csv_sz \
    = RPR_GetUserInputs(
    title, num_inputs, captions_csv, retvals_csv, retvals_csv_sz
)
if Boolean_retval:
    the_minute = int(String_retvals_csv)
    dr_seconds = the_minute * 60
    moveToRight(dr_seconds)


RPR_PreventUIRefresh(-1)  # 允许UI刷新
RPR_UpdateArrange()  # 刷新界面，反映修改
RPR_Undo_EndBlock("选中的所有音频对象右移N分钟（弹窗输入具体时间）", -1)  # 撤销设置结束
